home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 2 / Gold Medal Software Volume 2 (Gold Medal) (1994).iso / windows / win31 / macsyma.arj / MACSDEMO.EXE / TRAN_MAT.OUT < prev    next >
Text File  |  1993-09-14  |  10KB  |  106 lines

  1.  
  2. (c1) /* TRANSFER_MATRIX solves control equations of the form
  3.  
  4.                   dY
  5.                   -- = A . Y  +  B . U
  6.                   dT
  7.  
  8.                                Z = C . Y  +  D . U
  9.  
  10. where A, B, C, and D are matrices and U, Y, and Z are vectors.  The 
  11. inputs to the function are A, B, C, D, and the independent variable to use.
  12. For example: */
  13. (a:matrix([-2,1,0],[1,-3,1],[0,1,-2]),
  14.  b:matrix([1,0],[0,1],[0,0]),
  15.  c:matrix([1,0,0],[0,1,-1]),
  16.  d:matrix([2,0],[0,1]),
  17.  display(a,b,c,d))$
  18. |$label(0,15,Times New Roman,)a$hinge()$in( = )$matrix(3,3,$in( - )2,1,0,1,$in( - )3,1,0,1,$in( - )2)
  19.  
  20. |$label(0,15,Times New Roman,)b$hinge()$in( = )$matrix(2,3,1,0,0,1,0,0)
  21.  
  22. |$label(0,15,Times New Roman,)c$hinge()$in( = )$matrix(3,2,1,0,0,0,1,$in( - )1)
  23.  
  24. |$label(0,15,Times New Roman,)d$hinge()$in( = )$matrix(2,2,2,0,0,1)
  25.  
  26.  
  27. (c2) transfer_matrix(a,b,c,d,'s);
  28. C:\MACSD2B\ode\tran_mat.fas being loaded.
  29. |$label(0,15,Times New Roman,$(d2$))$matrix(2,2,$q($sup(s,2)$in( + )5$in( )s$in( + )5,$sup(s,3)$in( + )7$in( )$sup(s,2)$in( + )14$in( )s$in( + )8)$in( + )2,$q(s$in( + )2,$sup(s,3)$in( + )7$in( )$sup(s,2)$in( + )14$in( )s$in( + )8),$q(s$in( + )1,$sup(s,3)$in( + )7$in( )$sup(s,2)$in( + )14$in( )s$in( + )8),$q($sup(s,2)$in( + )3$in( )s$in( + )2,$sup(s,3)$in( + )7$in( )$sup(s,2)$in( + )14$in( )s$in( + )8)$in( + )1)
  30.  
  31. (c3) /* The original matrices with respect to phase-variable coordinates
  32.    and the TPVF matrix which defines the transformation are stored in the
  33.    list phase_variable_matrices. */
  34. phase_variable_matrices;
  35. |$label(0,15,Times New Roman,$(d3$))$open([)$matrix(3,3,0,1,0,0,0,1,$in( - )8,$in( - )14,$in( - )7)$ina($, )$hinge()$matrix(2,3,0,0,0,1,1,$in( - )5)$ina($, )$hinge()$matrix(3,2,5,5,1,1,1,0)$ina($, )$hinge()$matrix(2,2,2,0,0,1)$ina($, )$hinge()$matrix(3,3,5,5,1,2,1,0,1,0,0)$close(])
  36.  
  37. (c4) /* Another example.  Note that zero matrices must be entered explicitly.  
  38.    Note also that TRANSFER_MATRIX always returns a matrix as its answer. */
  39. (a:matrix([0,1,0],[0,0,1],[2,-1,2]),
  40.  b:matrix([0],[0],[1]),
  41.  c:matrix([1,0,0]),
  42.  d:matrix([0]),
  43.  display(a,b,c,d))$
  44. |$label(0,15,Times New Roman,)a$hinge()$in( = )$matrix(3,3,0,1,0,0,0,1,2,$in( - )1,2)
  45.  
  46. |$label(0,15,Times New Roman,)b$hinge()$in( = )$matrix(1,3,0,0,1)
  47.  
  48. |$label(0,15,Times New Roman,)c$hinge()$in( = )$matrix(3,1,1,0,0)
  49.  
  50. |$label(0,15,Times New Roman,)d$hinge()$in( = )$matrix(1,1,0)
  51.  
  52.  
  53. (c5) transfer_matrix(a,b,c,d,'s);
  54. |$label(0,15,Times New Roman,$(d5$))$matrix(1,1,$q(1,$sup(s,3)$in( - )2$in( )$sup(s,2)$in( + )s$in( - )2))
  55.  
  56. (c6) phase_variable_matrices;
  57. |$label(0,15,Times New Roman,$(d6$))$open([)$matrix(3,3,0,1,0,0,0,1,2,$in( - )1,2)$ina($, )$hinge()$matrix(1,3,0,0,1)$ina($, )$hinge()$matrix(3,1,1,0,0)$ina($, )$hinge()$matrix(1,1,0)$ina($, )$hinge()$matrix(3,3,1,0,0,0,1,0,0,0,1)$close(])
  58.  
  59. (c7) /* A similar example, which contains a symbolic parameter: */
  60. (a:matrix([0,z,0],[0,0,1],[2,-1,2]),
  61.  b:matrix([0],[0],[1]),
  62.  c:matrix([1,0,0]),
  63.  d:matrix([0]),
  64.  display(a,b,c,d))$
  65. |$label(0,15,Times New Roman,)a$hinge()$in( = )$matrix(3,3,0,z,0,0,0,1,2,$in( - )1,2)
  66.  
  67. |$label(0,15,Times New Roman,)b$hinge()$in( = )$matrix(1,3,0,0,1)
  68.  
  69. |$label(0,15,Times New Roman,)c$hinge()$in( = )$matrix(3,1,1,0,0)
  70.  
  71. |$label(0,15,Times New Roman,)d$hinge()$in( = )$matrix(1,1,0)
  72.  
  73.  
  74. (c8) soln: transfer_matrix(a,b,c,d,'s);
  75. |$label(0,15,Times New Roman,$(d8$))$matrix(1,1,$q(z,$in( - )2$in( )z$in( + )$sup(s,3)$in( - )2$in( )$sup(s,2)$in( + )s))
  76.  
  77. (c9) phase_variable_matrices;
  78. |$label(0,15,Times New Roman,$(d9$))$open([)$matrix(3,3,0,1,0,0,0,1,2$in( )z,$in( - )1,2)$ina($, )$hinge()$matrix(1,3,0,0,1)$ina($, )$hinge()$matrix(3,1,z,0,0)$ina($, )$hinge()$matrix(1,1,0)$ina($, )$hinge()$matrix(3,3,z,0,0,0,1,0,0,0,1)$close(])
  79.  
  80. (c10) /* Now invert the Laplace transform. */
  81. soln: part(soln,1,1);
  82. |$label(0,15,Times New Roman,$(d10$))$q(z,$in( - )2$in( )z$in( + )$sup(s,3)$in( - )2$in( )$sup(s,2)$in( + )s)
  83.  
  84. (c11) solve(denom(soln),s)$
  85.  
  86. (c12) num(soln)/product((s-rhs(part(%,i))),i,1,3)$
  87.  
  88. (c13) ilt(%,s,t);
  89. |$label(0,15,Times New Roman,$(d13$))$q(162$in( )z$in( )$sup($paren($q($sqrt(z$in( )$paren(27$in( )z$in( - )2,$(,$))),3$in( )$sqrt(3))$in( + )$q(27$in( )z$in( - )1,27),$(,$)),2$in(/)3)$in( )$sup($e(),$in( - )$q(t$in( )$paren($paren(9$in( )$sqrt(3)$in( )$italictext(i)$in( + )9,$(,$))$in( )$sup($paren($q($sqrt(z$in( )$paren(27$in( )z$in( - )2,$(,$))),3$in( )$sqrt(3))$in( + )$q(27$in( )z$in( - )1,27),$(,$)),2$in(/)3)$in( - )12$in( )$sup($paren($q($sqrt(z$in( )$paren(27$in( )z$in( - )2,$(,$))),3$in( )$sqrt(3))$in( + )$q(27$in( )z$in( - )1,27),$(,$)),1$in(/)3)$in( - )$sqrt(3)$in( )$italictext(i)$in( + )1,$(,$)),18$in( )$sup($paren($q($sqrt(z$in( )$paren(27$in( )z$in( - )2,$(,$))),3$in( )$sqrt(3))$in( + )$q(27$in( )z$in( - )1,27),$(,$)),1$in(/)3))),$paren(243$in( )$sqrt(3)$in( )$italictext(i)$in( - )243,$(,$))$in( )$sup($paren($q($sqrt(z$in( )$paren(27$in( )z$in( - )2,$(,$))),3$in( )$sqrt(3))$in( + )$q(27$in( )z$in( - )1,27),$(,$)),4$in(/)3)$in( + )54$in( )$sup($paren($q($sqrt(z$in( )$paren(27$in( )z$in( - )2,$(,$))),3$in( )$sqrt(3))$in( + )$q(27$in( )z$in( - )1,27),$(,$)),2$in(/)3)$in( - )3$in( )$sqrt(3)$in( )$italictext(i)$in( - )3)$hinge()$in( + )$q(162$in( )z$in( )$sup($paren($q($sqrt(z$in( )$paren(27$in( )z$in( - )2,$(,$))),3$in( )$sqrt(3))$in( + )$q(27$in( )z$in( - )1,27),$(,$)),2$in(/)3)$in( )$sup($e(),$in( - )$q(t$in( )$paren($paren(9$in( - )9$in( )$sqrt(3)$in( )$italictext(i),$(,$))$in( )$sup($paren($q($sqrt(z$in( )$paren(27$in( )z$in( - )2,$(,$))),3$in( )$sqrt(3))$in( + )$q(27$in( )z$in( - )1,27),$(,$)),2$in(/)3)$in( - )12$in( )$sup($paren($q($sqrt(z$in( )$paren(27$in( )z$in( - )2,$(,$))),3$in( )$sqrt(3))$in( + )$q(27$in( )z$in( - )1,27),$(,$)),1$in(/)3)$in( + )$sqrt(3)$in( )$italictext(i)$in( + )1,$(,$)),18$in( )$sup($paren($q($sqrt(z$in( )$paren(27$in( )z$in( - )2,$(,$))),3$in( )$sqrt(3))$in( + )$q(27$in( )z$in( - )1,27),$(,$)),1$in(/)3))),$paren($in( - )243$in( )$sqrt(3)$in( )$italictext(i)$in( - )243,$(,$))$in( )$sup($paren($q($sqrt(z$in( )$paren(27$in( )z$in( - )2,$(,$))),3$in( )$sqrt(3))$in( + )$q(27$in( )z$in( - )1,27),$(,$)),4$in(/)3)$in( + )54$in( )$sup($paren($q($sqrt(z$in( )$paren(27$in( )z$in( - )2,$(,$))),3$in( )$sqrt(3))$in( + )$q(27$in( )z$in( - )1,27),$(,$)),2$in(/)3)$in( + )3$in( )$sqrt(3)$in( )$italictext(i)$in( - )3)$hinge()$in( - )$q(324$in( )z$in( )$sup($paren($q($sqrt(z$in( )$paren(27$in( )z$in( - )2,$(,$))),3$in( )$sqrt(3))$in( + )$q(27$in( )z$in( - )1,27),$(,$)),2$in(/)3)$in( )$sup($e(),$in( - )$q(t$in( )$paren($in( - )9$in( )$sup($paren($q($sqrt(z$in( )$paren(27$in( )z$in( - )2,$(,$))),3$in( )$sqrt(3))$in( + )$q(27$in( )z$in( - )1,27),$(,$)),2$in(/)3)$in( - )6$in( )$sup($paren($q($sqrt(z$in( )$paren(27$in( )z$in( - )2,$(,$))),3$in( )$sqrt(3))$in( + )$q(27$in( )z$in( - )1,27),$(,$)),1$in(/)3)$in( - )1,$(,$)),9$in( )$sup($paren($q($sqrt(z$in( )$paren(27$in( )z$in( - )2,$(,$))),3$in( )$sqrt(3))$in( + )$q(27$in( )z$in( - )1,27),$(,$)),1$in(/)3))),$in( - )972$in( )$sup($paren($q($sqrt(z$in( )$paren(27$in( )z$in( - )2,$(,$))),3$in( )$sqrt(3))$in( + )$q(27$in( )z$in( - )1,27),$(,$)),4$in(/)3)$in( - )108$in( )$sup($paren($q($sqrt(z$in( )$paren(27$in( )z$in( - )2,$(,$))),3$in( )$sqrt(3))$in( + )$q(27$in( )z$in( - )1,27),$(,$)),2$in(/)3)$in( - )12)
  90.  
  91. (c14) optimize(isolate(%,t));
  92. C:\MACSD2B\library1\optim.fas being loaded.
  93.  
  94. |$label(0,15,Times New Roman,$(e14$))$in( - )$q(324$in( )z$in( )$sup($paren($q($sqrt(z$in( )$paren(27$in( )z$in( - )2,$(,$))),3$in( )$sqrt(3))$in( + )$q(27$in( )z$in( - )1,27),$(,$)),2$in(/)3),$in( - )972$in( )$sup($paren($q($sqrt(z$in( )$paren(27$in( )z$in( - )2,$(,$))),3$in( )$sqrt(3))$in( + )$q(27$in( )z$in( - )1,27),$(,$)),4$in(/)3)$in( - )108$in( )$sup($paren($q($sqrt(z$in( )$paren(27$in( )z$in( - )2,$(,$))),3$in( )$sqrt(3))$in( + )$q(27$in( )z$in( - )1,27),$(,$)),2$in(/)3)$in( - )12)
  95.  
  96.  
  97. |$label(0,15,Times New Roman,$(e15$))$q(162$in( )z$in( )$sup($paren($q($sqrt(z$in( )$paren(27$in( )z$in( - )2,$(,$))),3$in( )$sqrt(3))$in( + )$q(27$in( )z$in( - )1,27),$(,$)),2$in(/)3),$paren($in( - )243$in( )$sqrt(3)$in( )$italictext(i)$in( - )243,$(,$))$in( )$sup($paren($q($sqrt(z$in( )$paren(27$in( )z$in( - )2,$(,$))),3$in( )$sqrt(3))$in( + )$q(27$in( )z$in( - )1,27),$(,$)),4$in(/)3)$in( + )54$in( )$sup($paren($q($sqrt(z$in( )$paren(27$in( )z$in( - )2,$(,$))),3$in( )$sqrt(3))$in( + )$q(27$in( )z$in( - )1,27),$(,$)),2$in(/)3)$in( + )3$in( )$sqrt(3)$in( )$italictext(i)$in( - )3)
  98.  
  99.  
  100. |$label(0,15,Times New Roman,$(e16$))$q(162$in( )z$in( )$sup($paren($q($sqrt(z$in( )$paren(27$in( )z$in( - )2,$(,$))),3$in( )$sqrt(3))$in( + )$q(27$in( )z$in( - )1,27),$(,$)),2$in(/)3),$paren(243$in( )$sqrt(3)$in( )$italictext(i)$in( - )243,$(,$))$in( )$sup($paren($q($sqrt(z$in( )$paren(27$in( )z$in( - )2,$(,$))),3$in( )$sqrt(3))$in( + )$q(27$in( )z$in( - )1,27),$(,$)),4$in(/)3)$in( + )54$in( )$sup($paren($q($sqrt(z$in( )$paren(27$in( )z$in( - )2,$(,$))),3$in( )$sqrt(3))$in( + )$q(27$in( )z$in( - )1,27),$(,$)),2$in(/)3)$in( - )3$in( )$sqrt(3)$in( )$italictext(i)$in( - )3)
  101.  
  102. |$label(0,15,Times New Roman,$(d16$))block$paren($paren(%1$ina($, )$hinge()%2$ina($, )$hinge()%3$ina($, )$hinge()%4$ina($, )$hinge()%5$ina($, )$hinge()%6$ina($, )$hinge()%7,[,])$ina($, )$hinge()%1$in( : )27$in( )z$ina($, )$hinge()%2$in( : )$sqrt(3)$ina($, )$hinge()%3$in( : )$q($sqrt(z$in( )$paren(%1$in( - )2,$(,$))),3$in( )%2)$in( + )$q(%1$in( - )1,27)$ina($, )$hinge()%4$in( : )$sup(%3,1$in(/)3)$ina($, )$hinge()%5$in( : )$q(1,%4)$ina($, )$hinge()%6$in( : )$sup(%3,2$in(/)3)$ina($, )$hinge()%7$in( : )$in( - )12$in( )%4$ina($, )$hinge()$q(e16,$sup($e(),$q(t$in( )%5$in( )$paren($paren(9$in( )%2$in( )$italictext(i)$in( + )9,$(,$))$in( )%6$in( + )%7$in( - )%2$in( )$italictext(i)$in( + )1,$(,$)),18)))$in( + )$q(e15,$sup($e(),$q(t$in( )%5$in( )$paren($paren(9$in( - )9$in( )%2$in( )$italictext(i),$(,$))$in( )%6$in( + )%7$in( + )%2$in( )$italictext(i)$in( + )1,$(,$)),18)))$in( + )$q(e14,$sup($e(),$q(t$in( )%5$in( )$paren($in( - )9$in( )%6$in( - )6$in( )%4$in( - )1,$(,$)),9))))
  103.  
  104. (c17) /* Clean Up */
  105. remvalue(a,b,c,d,soln)$
  106.